package com.duyutian.util;

import java.math.BigInteger;
import java.util.Random;


public class NumberUtils {

    //生成一个随机的int值，该值介于[0,n)的区间，也就是0到n之间的随机int值，包含0而不包含n。
    public static int getRandom(int max){
        Random random = new Random();
        int a=random.nextInt(max);
        return a;
    }

    //生成一个随机的6位数字
    public static int getRandom6(){
        int a=(int)((Math.random()*9+1)*100000);
        return a;
    }


    public static int parseInt(Object val, int def) {
        if (val == null || "".equals(val)) {
            return def;
        }
        if (val != null && (val instanceof String)) {
            String d = (String) val;
            return Integer.parseInt(d);
        }

        if (val != null && (val instanceof Float)) {
            return ((Float) val).intValue();
        }

        if (val != null && (val instanceof Double)) {
            return ((Double) val).intValue();
        }

        if (val != null && (val instanceof Integer)) {
            return (int) val;
        }

        if (val != null && (val instanceof Long)) {
            return ((Long) val).intValue();
        }

        if (val != null && (val instanceof BigInteger)) {
            return ((BigInteger) val).intValue();
        }

        return def;
    }

    public static Float floatVal(String str, Float def) {
        if (str == null){
            return def;
        }
        try {
            Float f = Float.valueOf(str.replaceAll("[^\\d.]+|\\.(?!\\d)", ""));
            return f;
        } catch (NumberFormatException e) {
            e.printStackTrace();
            return def;
        }

    }

    public static long parseLong(Object val, long def) {
        if (val == null || "".equals(val)) {
            return def;
        }
        if (val != null && (val instanceof String)) {
            String d = (String) val;
            return Long.parseLong(d);
        }

        if (val != null && (val instanceof Float)) {
            return ((Float) val).longValue();
        }

        if (val != null && (val instanceof Double)) {
            return ((Double) val).longValue();
        }

        if (val != null && (val instanceof Integer)) {
            return ((Integer) val).intValue();
        }

        if (val != null && (val instanceof Long)) {
            return ((Long) val).longValue();
        }

        if (val != null && (val instanceof BigInteger)) {
            return ((BigInteger) val).longValue();
        }

        return def;
    }

//    public static void main(String[] args) {
//        NumberUtils.getRandom(10);
//        NumberUtils.getRandom6();
//    }

}
